package com.njwb.provider9001.controller;

import com.njwb.common.json.ResponseResult;
import com.njwb.common.pojo.User;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
public class UserController {
    private static Map<Integer, User> users = new HashMap<Integer, User>();

    private static Integer id=1;

    @PostMapping("user")
    public ResponseResult add(User user){
        user.setId(id++);
        users.put(user.getId(),user);
        return ResponseResult.success();
    }

//    @PostMapping("user")
//    public ResponseResult add(@RequestBody  User user){
//        user.setId(id++);
//        users.put(user.getId(),user);
//        return ResponseResult.success();
//    }


//    @PostMapping("/add2")
//    public ResponseResult add2(@RequestBody User user){
//        System.out.println("Provider.UserController.add2()");
//        user.setId(id++);
//        users.put(user.getId(),user);
//        return ResponseResult.success();
//    }
//
//    @PostMapping("/add3")
//    public ResponseResult add3(User user){
//        System.out.println("Provider.UserController.add3()");
//        user.setId(id++);
//        users.put(user.getId(),user);
//        return ResponseResult.success();
//    }

    @DeleteMapping("user/{id}")
    public ResponseResult delById(@PathVariable("id") Integer id){
        users.remove(id);
        return ResponseResult.success();
    }

    @PutMapping("user")
    public ResponseResult modify(User user){
        users.put(user.getId(),user);
        return ResponseResult.success();
    }

    @GetMapping("user/{id}")
    public ResponseResult findById(@PathVariable("id") Integer id){
        User user=users.get(id);
        return ResponseResult.success(user);
    }

    @GetMapping("user")
    public ResponseResult findAll(){
        List<User> list=new ArrayList<User>(users.values());
//        try {
//            //模拟客户端调用延时
//            Thread.sleep(3000);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }
//        int i = 1/0;//模拟异常统一处理
        return ResponseResult.success(list);
    }
}
